🎉 Gate.ioの15日間の感謝祭投稿チャレンジに参加して、$2,000の報酬の一部を獲得しよう!
感謝祭を祝して!Gate.ioは15日間の投稿チャレンジを開始します!Gate Postに参加して2,000ドルのシェアを獲得しましょう。また、Gate Postアンバサダー向けの独占グッズもあります!
🔎 参加する:
アナウンスメントのフォームをクリックしてサインアップしてください:https://www.gate.io/questionnaire/5556
あなたの投稿にハッシュタグ #15-Day Posting Challenge# を含めてください。
取引戦略、市場トレンド、仮想通貨
Collider_: 新しいオペコードのない5000万ドルのビットコイン契約
過去1年または2年にわたり、ビットコインに対する契約提案の拡張がいくつか行われてきましたが、専門家の間では、拡張なしにも契約が可能である可能性が常に疑われてきました。その証拠として、以前は不可能と考えられていた計算のレパートリーが拡大してきた(RISC-Vオペコードを実装するためのBitVMプロジェクトなど)、またビットコインの開発者が契約が可能であるはずだったが、何らかの曖昧な歴史的変遷のせいでできなかった「ほぼ成功」がいくつか見つかっています。
Ethan Heilman、Avihu Levy、Victor Kobolov、私たちが開発したスキームは、疑いが正当化されたことを証明するものです。私たちのスキーム、 Collider **は、かなり合理的な暗号的仮定のもとで、今日のビットコイン上で契約を可能にし、取引ごとの確実なコストはおそらく5億ドル前後(プラスいくつかのハードウェアR&D)です。
コライダーを使用するための非現実的なコストにもかかわらず、それを設定するのは非常に安価であり、通常の支出メカニズムとは別に、タップルートを使用して2つを分離することで、万が一量子コンピュータが突然現れてドットを爆破する場合でも、コインを救うかもしれません。
これらの主張を読んだ後、多くの読者はおそらく眉をしかめているでしょう。この記事を読み終える頃には、もう片方の眉も同じくらい高くなっているでしょう。
誓約
この議論の文脈は、馴染みのない方のために説明しますと、ビットコインにはビットコインと呼ばれる組み込みプログラミング言語があり、これを使用してコインの支出を承認します。初期の段階では、任意の計算を実装するために使用できる豊富な算術オペコードが含まれていました。しかし、2010年の夏に、サトシは深刻なバグの連続を鎮めるために、これらの多くを無効にしました(Great Restoration Projectの目標は、2010年以前のバージョンに戻ることです。OP_CATは同じ方向に向かったより控えめな提案です)。量と送金先を制御するトランザクションである契約のアイデアは、それから数年後に現れ、これらのオペコードを使用して契約を実装できることに気付くのはさらに後のことでした。その時点で、コミュニティはあまりにも大きく慎重であり、単に古いオペコードを再度「有効化」することはできませんでした。
Covenantsは、コインが使われる条件だけでなく、その宛先も制御することをユーザーに許可する架空の構造物です。これは、ヴォールトやレート制限ウォレットから、ペイメントプールのような新しい手数料市場メカニズム、分散型ファイナンスやMEVのような少し悪辣な構築物まで、ビットコイン上の多くの構築物の基盤となっています。Covenantsの望ましさやビットコインの性質に対する影響について何百万もの言葉が費やされてきました。
この記事では、この論争を回避し、ただ契約がすでにビットコイン上で可能であると主張し、いずれ私たちは(大きな計算コストや疑わしい暗号化前提条件なしで)どのように可能なのかを発見することになるだろうと主張し、ビットコインに対する契約のない未来と契約のある未来の間に個々の変更が分かれ道であるかのようにフレーム化すべきではないと主張します。
歴史
年月を経て、制限された中でも非自明なことをする創造的な方法を見つける伝統が発展しました。ライトニングネットワークはその一例であり、確率的支払いやハッシュ関数の衝突バウンティのような広く知られていないアイデアも同様です。SIGHASH_SINGLEバグや、インタプリタ内で「トランザクションハッシュ」を取得するための公開鍵リカバリの使用などのマイナーなエッジケースは認識され、探求されましたが、それらを有用にする方法は誰も見つけられませんでした。一方、ビットコイン自体はより明確に定義されるように進化し、これらの多くの問題を解決しました。例えば、セグウィットはSIGHASH_SINGLEバグを除去し、プログラムデータを証人データから明示的に分離しました。タップルートは、アダプターシグネチャやマルチシグネチャのセキュリティを潜在的に損なう代償として柔軟性を提供していた公開鍵リカバリを廃止しました。
これらの変更にもかかわらず、ハッキングは続き、熱心な信者の間では、何とかして契約のサポートがビットコインで見つかる可能性があるという信念も続いた。2020年代初頭、特に2つの進展が波紋を広げました。1つは、シグネチャベースの契約が公開鍵の回復とともに消滅していないことを私自身が発見したことであり、特に、1つの無効なオペコードであるOP_CATがあれば、かなり効率的な契約構築が可能になることが分かりました。もう1つはBitVMで、複数の取引で大規模な計算を行う革新的な方法であり、これにより単一取引内での基本的な計算に関する多大な研究が促されました。
これらの2つの進展は、誓約に関して多くの活動と興奮をもたらしましたが、同時に、我々の思考を結晶化させることになりました。特に、取引データが64バイトの署名と32バイトの公開鍵を介してのみ提供される一方で、BitVMをサポートするオペコードは4バイトのオブジェクトでのみ動作できるため、誓約が新しいオペコードなしでは不可能であるようでした。この分断は「Small 」と「Big 」と呼ばれ、この2つの間のブリッジを見つけることは、(少なくとも私の考えでは)誓約の構築を見つけることと同義となりました。
機能暗号化とパイプ
また、少しの月の数学を使えば、ビッグを一切離れることなく署名自体で契約を完全に実行することが可能であることが観察されました。このアイデアは、ジェレミー・ルービンが彼の論文「FE'd Up Covenants」で述べたもので、機能的な暗号化という仮想の暗号プリミティブを使用して契約を実装する方法を説明しています。数ヶ月後、ミーシャ・コモロフはPIPEsという具体的なスキームを提案し、この仮想のアイデアを実現するようです。
これは興奮する展開ですが、2つの主な制限があります。1つは、信頼されたセットアップが関与していることで、契約を作成する人物はそのルールを回避することができます。(これは、貨幣の所有者が自身のセキュリティを損なわないことが信頼できる金庫などには問題ありませんが、契約内の貨幣が契約の作成者の所有物でない支払いプールなどには問題があります。)もう1つの制限は、曖昧なセキュリティ特性を持つ最先端の暗号化が関与していることです。この後者の制限は、より多くの研究によって徐々に解消されていきますが、信頼されたセットアップは機能的-暗号化手法に固有のものです。
コライダー
この概要は私たちを現在の状況に導きます:私たちは既存の形式のビットコインを使用して契約を実装する方法を見つけたいと考えており、それを実現する方法は、トランザクション署名の「大きな」部分と任意の計算の「小さな」部分の間のある種のブリッジを見つけることです。私たちの論文の付録Aには、すべてのオペコードを入力と出力のサイズに基づいて分類したものがありますが、どのオペコードも直接このブリッジを形成することはできないようです。もしブリッジが存在する場合、それは単一の大きなオブジェクトを取り、それがいくつかの小さなオブジェクトの連結とまったく等しいことを示すような構造物であるように思われます。オペコードの分類に基づいて、これは不可能なようです。
しかし、暗号技術では、「まさに等しい」といった概念を弱めることがよくあります。代わりに「計算的に区別できない」とか「統計的に区別できない」といった概念を使用して、それによって不可能な結果を回避します。たぶん、Bigの組み込み暗号構造(ハッシュと楕円曲線署名)を使用し、SmallでBitVM構築を鏡映させることによって、大きなオブジェクトが一連の小さなオブジェクトから「計算的に区別できない」ことを示す方法を見つけることができるかもしれませんか? Colliderを使用すると、これがまさに私たちが行ったことです。
これは何を意味するのでしょうか? まあ、前述のハッシュ関数の衝突報酬を思い出してください。 この報酬の前提は、同じハッシュ出力を持つ2つの入力を提供することで、ハッシュ関数を衝突させることができる人は誰でも、それを証明し、それによって報酬を請求できるということです。 ハッシュ関数の入力空間は出力空間よりもはるかに大きいため(サイズが520バイトまでのすべてのバイト文字列)、数学的には多くの衝突があるはずです。 それにもかかわらず、SHA1を除いて、これらの衝突を見つけるよりも、単にハッシュ関数を繰り返し呼び出し、その結果が以前の試みと一致するかどうかを確認する以外に、速く見つける方法は見つかっていません。
これは、平均して、SHA1やRIPEMD160のような160ビットのハッシュ関数の場合、ユーザーが衝突を見つけるために少なくとも2^80の作業、つまり1000兆兆回以上の反復が必要になります。(SHA1の場合、ユーザーが特定の形式の入力を使用できる場合はショートカットがありますが、私たちの構造はこれらを禁止しているため、この攻撃は無視できます。) これは、ユーザーが効果的に無限のメモリを持っていると仮定しています。より現実的な仮定では、さらに100程度の要素を追加する必要があります。
もしSHA1とRIPEMD160がビットコインASICがSHA256を計算するのと同じくらい効率的に計算できると仮定すると、その計算のコストは200ブロック、つまり約625 BTC(4600万ドル)になります。これは大金ですが、多くの人がそのような金額にアクセスできるので、これは可能です。
トリプルの衝突、つまり同じものに評価される3つの入力を見つけるには、非常に寛大なメモリアクセスの仮定をしても、2^110の作業が必要です。この数を得るためには、コストにさらに1600万の要素を追加する必要があります - 合計で700兆ドル以上になります。これもまた、非常に多額のお金であり、今日誰もがアクセスできるものではありません。
私たちの構造の要点は次のとおりです: 一連の小さなオブジェクトが1つの大きなオブジェクトと等価であることを証明するために、まず、ターゲットオブジェクトと「同等のテスターオブジェクト」の間にハッシュ衝突を見つけます(これは何らかの方法で再ランダム化できると仮定しているため、"第二画像検索"ではなく衝突検索を行っています)。これらの同等のテスターオブジェクトは、BigとSmallの両方で簡単に操作できるように構築されています。
その後、私たちの建設は、ビットコインで、大きなオブジェクトが等価テスターと衝突するかどうか(ハッシュ-報酬と同じ方法を使用して)と、小さなオブジェクトのシリーズが等価テスターと衝突するかどうか(ビットVMプロジェクトから一部借用した複雑な構造を使用して、論文で詳しく説明されています)をチェックします。これらのチェックが成功した場合、小さなオブジェクトと大きなオブジェクトのいずれかは同じであり、またはユーザーがトリプル衝突を見つけました:テスターと両方のオブジェクトが衝突する異なる2つのオブジェクト。上記の議論によれば、これは不可能です。
まとめ
小さなものと大きなものを結ぶことは、契約の構築において最も困難な部分です。このブリッジから実際の契約に移るためには、比較的簡単ないくつかのステップがあります。特に、契約はまず、特別な「ジェネレータキー」を使用してトランザクションに署名するようユーザに要求します。この署名をOP_CHECKSIGオペコードを使用して検証できます。ブリッジを使用して、この署名を4バイトのチャンクに分割します。次に、そのノンスがジェネレータキーとも等しいことを検証します。これは署名が分割された後に簡単に行うことができます。最後に、Schnorrトリックからの技術を使用して、署名からトランザクションデータを抽出し、それを契約が望む方法で制約することができます。
私たちができることは他にもあります: 付録Cでは、コインを一連の公開キーの1つに署名することを可能にするリング署名構築が説明されており、どれが使用されたかを明らかにせずに済みます。この場合、署名ではなく公開キーを分割するために、ブリッジを使用します。これにより、タップルートに関連する技術的な理由により、契約の構築に比べて効率が大幅に向上します。これについては、詳細は論文に記載されています。
私が注目を集めたい最終的な応用プログラムは、論文のセクション7.2で簡単に議論されています。それは、私たちの契約の構築を使用して、Schnorr署名から取引のハッシュを取り出し、その後単純にLamport署名を使用してハッシュを再署名することができます。
なぜこれをやるのか? 上記のリンクで主張されているように、この方法で署名を行うことで、取引データにおける量子安全署名になります。この構造が一部のコインに署名する唯一の方法である場合、それらは量子コンピュータによる盗難から免疫を持つことになります。
もちろん、私たちの建設には数千万ドルが必要ですが、誰もがこの建設をコインに署名する唯一の方法にすることはありません。しかし、既存の非量子安全な支出方法に加えて、誰かがこの建設を自分のコインに追加することを妨げるものは何もありません。
もし、明日目を覚ましたら、ビットコインの署名を破ることができる安価な量子コンピューターが存在していることがわかった場合、緊急のソフト-フォークを提案するかもしれません。このソフト-フォークは、タップルートのキー支出とOP_CHECKSIGオペコードを含むすべての楕円曲線署名を無効にします。これにより、実質的にすべてのコインが凍結されます。しかし、もし選択肢がすべてのコインが自由に盗まれる可能性があるなら、おそらくそれは何の違いも生まないでしょう。この署名を無効にするソフト-フォークが、生成キーで呼び出された場合にOP_CHECKSIGオペコードを許可するなら(このような署名はどちらにせよセキュリティを提供せず、当社のような複雑な構築のための構成要素としてのみ有用です)、当社のLamport署名構築のユーザーは、差し押さえや盗難の恐れなしにコインを自由に使い続けることができます。
もちろん、それをするには何千万ドルを費やす必要がありますが、「不可能」というよりはるかに良いです!そして、私たちはこのコストがPEOPLE、私たちの研究に基づいて構築される人々によって大幅にドロップすることを期待しています。
この記事はアンドリュー・ポエルストラによるゲスト投稿です。 表明された意見は完全に彼ら自身のものであり、必ずしもBTC Incまたはビットコインマガジンのものとは限りません。